This invention relates to an execution unit of a central processing unit within a data processing or computer system, and more particularly, to an apparatus for executing data manipulation type instructions and arithmetic type instructions on data words having a plurality of decimal character-type data formats.
In computer systems, various type computer words are defined having specific formats, including instruction words having a specified instruction format and data words having a plurality of predetermined data formats. In order to maximize the efficiency of the overall computer system, the data words can take on a variety of formats. The formats are defined to maximize memory storage efficiency, to minimize the time required for the conversion to an output device format, to maintain the data in a format readily available to the execution units, etc., the data selection being made by the designer to achieve one or more of the aforementioned objectives as they relate to the computer word size.
The various alpha, numeric, and special characters can be defined in a computer in a variety of ways. In many present, existing systems the characters are defined utilizing a grouping of eight bits in a coded format, commonly known as an 8-bit binary coded decimal (BCD) format. This grouping of eight bits allows sufficient capacity to define all the alpha characters, both upper and lower case, the numeric characters, and a variety of special characters, the 8-bit BCD format having achieved a high degree of standardization within the computer industry. In addition, the eight bits are divisible into the standard computer word sizes of many computer systems, these computer systems utilizing 8-bit bytes, or words of 16, 24, or 32 bits. These computer word sizes being divisible by 8 allow for a high degree of symmetry which is highly desirable in data manipulation. Occasionally a data word format is defined which eludes the desired symmetry. When such a case exists extra processing is required in manipulating the data. In large data systems, a computer word size of 36 bits is sometimes defined. In this case, in order to accommodate the 8-bit BCD standard, a data word format of four characters having 9 bits each can be defined within the 36 bit computer word. A second data word format can be defined such that the 9 bit character can be divided to include two four-bit numeric characters. In such a format the symmetry mentioned above has been violated such that an extra bit exists in the nine-bit field. Still another data word format can be defined such that the 36-bit computer word is divided into 6 characters of 6-bits per character.
In computer systems, basic operations must be performed. The computer system must fetch the instruction word from a main memory storage unit, decode the operation code contained in the instruction word, and then execute, i.e., perform that operation, on some predetermined data.
For computer systems, and more specifically the central processing unit of the computer system, having a single execution unit, the instruction execution is performed in a serial or sequential manner, the execution sequence corresponding to the instruction sequence. For complex instructions, such as decimal add and decimal multiply, the long execution times required to execute these instructions will significantly slow down the operating speed of the computer system. Many techniques have been implemented to assist in speeding up the operation of the computer system, one such technique being what is commonly known as pipelining. In pipelined CPUs with single execution units some increase in operating speed can be achieved. However, in order to achieve high operating speeds, multiple execution units can be used. In this manner, the next instruction can begin execution even though the previous instruction has not completed its execution. Such an execution unit, a decimal character execution unit, can be provided to perform the operation specified by an operation code contained in an instruction word, the operations including data manipulation and arithmetic operation on data words having a plurality of decimal character-type data formats.
In previous decimal character execution units, instruction execution did not overlap. In the present invention, a decimal character execution unit is provided having a pipelined structure permitting instruction execution overlap thereby significantly increasing the speed of executing the data manipulation instruction and arithmetic instructions operating on the decimal character-type data.